#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include <windows.h>
#include <conio.h>      //system函数的头文件

char filename1[] = "customer.txt"; //乘客文件名

char filename2[] = "railway.txt"; //列车文件名

char pwdfile[] = "pwd.txt"; //存放密码文件

typedef struct customer     //乘客信息
{
    int id[50];             //证件号
    char name[50];          //姓名
    int rank;               //票的种类
    int railway_no[50];         //列车号
    struct customer *next;  //指针域
}customer;

typedef struct railway      //列车信息
{
    int railway_no;   //列车次
    int time[3];          //列车出发和结束时间
    //int customer_a;          //乘客定额
    //int free_a;              //剩余票数
    int price[3];            //各种车票的价格
    //customer *custname;      //已订票乘客名单
    struct railway *next;    //指向下列车结点
}railway;

customer *c_head = NULL;                //乘客头节点
railway *r_head = NULL;                 //列车头结点


static int Isempty = 1;         //是否有订票乘客

struct Admin
{
    char name[50];
    char pwd[10];
};

/*
    作用：为头节点分配空间
    输入：空
    输出：成功返回0 失败返回-1
    被主函数调用
*/
int toujiedian();

/*
    作用：选择界面
    输入：空
    输出：空
    被主函数调用
*/
void selectOption(void);

/*
    作用：登录系统
    输入；空
    输出：成功返回0 失败返回-1
    被主函数调用
*/
int denglu();

/*
    作用：查看列车信息
    输入：空
    输出：成功返回0 失败返回-1
    被主函数调用
*/
int railway_see();    

/*
    作用：管理员视角
    输入：空
    输出：空
    被主函数调用
*/
void admin_menu();

railway * findRailway(int answer);

/*
    作用：售票
    输入：空
    输出：成功返回0 失败返回-1
    被主函数调用
*/
int shoupiao();

/*
    作用：退票
    输入：空
    输出：成功返回0 失败返回-1
    被主函数调用
*/
int tuipiao();

/*
    作用：改签
    输入：空
    输出：成功返回0 失败返回-1
    被主函数调用
*/
int gaiqian();

/*
    作用：添加列车车次
    输入：空
    输出：成功返回0 失败返回-1
    被函数调用
*/
int railway_add();    

/*
    作用：保存列车车次信息
    输入：空
    输出：成功返回0 失败返回-1
    被函数调用
*/
void saverailway();

/*
    作用：列车车次管理
    输入：空
    输出：成功返回0 失败返回-1
    被主函数调用
*/
void railwaymanage();    

/*
    作用：查找乘客信息
    输入：空
    输出：成功返回0 失败返回-1
    被函数调用
*/
void checkchengke();

/*
    作用：保存乘客信息
    输入：空
    输出：成功返回0 失败返回-1
    被函数调用
*/
int savechengke();

/*
    作用：乘客信息管理
    输入：空
    输出：成功返回0 失败返回-1
    被主函数调用
*/
int chengkemanage();